package net.yla.smartbus.module.ba.dept.entity;

import lombok.Data;
import net.yla.smartbus.core.validation.DtoName;
import net.yla.smartbus.core.validation.GetDtoName;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @description:
 * @author: Yee
 * @date: 2021/6/17 14:43
 */
@Data
@GetDtoName
public class DeptDO {
    private static final long serialVersionUID = 1L;
    //记录的标识号
    @DtoName("id")
    private Integer deptId;

    //引用BA_Groups表主键
    @DtoName("group")
    private Integer groupId;

    //引用BA_Depts表主键
    @DtoName("parent")
    private Integer parentId;

    //引用BA_Employees表主键
    @DtoName
    private Integer empId;

    //层级嵌套深度(从0开始)
    private Integer level;

    //顶级部门到当前部门的主键列表（不含自身）
    @DtoName
    private byte[] parents;

    //当前部门的所有后代部门的记录主键列表
    private byte[] childrens;

    //部门名称
    @DtoName
    private String name;

    //与ParentId、PlatformId字段组合唯一
    //@DtoName("qualified")
    private String qualifiedName;

    //部门编码
    @DtoName
    private String code;

    //部门名称的拼音
    @DtoName
    private String pinyin;

    //拼音的首字母
    @DtoName
    private String abbr;

    //办公电话
    @DtoName
    private String tel;

    //办公地址
    @DtoName
    private String address;

    //记录所属平台
    @DtoName
    private Integer platformId;

    //中心平台记录标识号
    private Long uniqueId;

    //记录的版本号
    private Integer version;

    //是否隐藏该记录
    @DtoName
    private Integer hidden;

    //该记录是否已禁用
    private Integer disabled;

    //记录的排序号
    @DtoName
    private Integer sortOrder;

    //记录的创建时间
    //@DtoName("creation")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    //记录的最后修改时间
    //@DtoName("modify")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastModifyTime;

    //记录的标志位
    private Integer flags;


    //以下为非 dept 表中字段字段

    //分组名称
    private String groupName;
}
